package com.talent.service;

import com.talent.pojo.dto.MenuDTO;
import com.talent.pojo.entity.Menu;
import com.talent.pojo.vo.MenuTreeVO;
import com.talent.pojo.vo.MenuContentDetailVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 菜单服务接口
 */
public interface MenuService {

    /**
     * 获取菜单树形结构
     */
    List<MenuTreeVO> getMenuTree(String name);

    /**
     * 根据ID查询菜单
     */
    Menu getById(Long id);

    /**
     * 创建菜单
     */
    Menu create(MenuDTO menuDTO);

    /**
     * 更新菜单
     */
    void update(Long id, MenuDTO menuDTO);

    /**
     * 删除菜单
     */
    void deleteById(Long id);

    void importMenus(MultipartFile file);
    
    /**
     * 获取顶级菜单列表
     */
    List<Menu> getTopLevelMenus();
    
    /**
     * 根据父ID获取子菜单列表
     */
    List<Menu> getChildMenusByParentId(Long parentId);
    
    /**
     * 根据ID获取内容项详情和顶层父级信息
     */
    MenuContentDetailVO getContentDetailById(Long id);
}
